#include "openmv.h"

int16_t x = 0 , y = 0;
static uint16_t stop_time_ON = 0;

void openmv_receive_data(uint8_t *data, uint16_t size)
{
		
	//解析数据
	if(data[0] == 0xA5 && data[size - 1] == 0xA6)
	{
		
		if( size == 6)//读取数据长度
		{
			x = (char)data[1];
			printf("OpenMV x: %c\r\n", x);
		}
		else  
		{ 
			//printf("无效!\n");
		}
//		switch(x)
//		{
//			case 'r':
//				motor_speed_set(300,150);
//			break;
//			case 'l':
//				motor_speed_set(150,350);
//			break;
//			case 'f':
//				motor_speed_set(300,300);
//			break;
//			case 'n':
//				motor_speed_set(-150,-150);
//				stop_time_ON = HAL_GetTick();
//				if(HAL_GetTick() - stop_time_ON <= 2000)
//					motor_speed_set(0,0);
//			break;
//			default:
//				motor_speed_set(0,0);
//			break;

//		}
		
		
		
//		if( size == 6)//读取数据长度
//		{
//			x = (data[1] << 8 | data[2]);
//			y = (data[3] << 8 | data[4]);
//			//printf("OpenMV x: %d, y: %d\r\n", x, y);
//		}
//		else 
//		{
//			//printf("无效!\n");
//		}
			
	}
}

void openmv_task(void)
{
	openmv_receive_data(my_uart6.ReceiveData, my_uart6.ReceveNum);
	my_uart6.data_flag = 0;
}
